char *p[]={"3697","2584"}

来源:百度知道 编辑:UC知道 时间:2024/04/30 04:23:57
main()

{

char *p[]={“3697”,”2584”};

int i,j; long num=0;

for(i=0;i<2;i++)

{j=0;

while(p[i][j]!='\0')

{ if((p[i][j]-‘0')%2)num=10*num+p[i][j]-‘0';

j+=2;

} }

printf(“%d\n”num);

答案是39
拜托谁可以帮我解释下哈~

main()
{
char *p[]={“3697”,“2584”};
int i,j; long num=0;

for(i=0;i<2;i++)
{
j=0;
while(p[i][j]!='\0')
{
if((p[i][j]-‘0')%2)//不是偶数,记录下来
num=10*num+p[i][j]-‘0'; //放到最右侧
j+=2;
}
}
printf(“%d\n”num);
}

第1遍:i=0,j=0;p[i][j]=3;
第2遍:i=0,j=2;p[i][j]=9;
第3遍:i=0,j=4;p[i][j]='\0';

第4遍:i=0,j=0;p[i][j]=2;
第5遍:i=0,j=2;p[i][j]=8;
第6遍:i=0,j=4;p[i][j]='\0';

由于3,9不是偶数,2,8是偶数;而不是偶数才记录,所以是39